package com.wootion.cims.module.communityservice.model;

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.format.annotation.DateTimeFormat;

import java.io.Serializable;
import java.util.Date;
import java.util.List;

/**
 * @Author: LanQiang
 * @Date: 2022/12/27/8:44
 * @Description: 查询条件
 */
@NoArgsConstructor
@AllArgsConstructor
@Data
@Builder
@ApiModel(value = "查询条件")
public class Condition implements Serializable {
    private static final long serialVersionUID = 874681921276361091L;

    @ApiModelProperty(value = "姓名/手机号/身份证号")
    private String keyWord;
    
    @ApiModelProperty(value = "房屋类型")
    private String residenceCategory;

    @ApiModelProperty(value = "社区id")
    private String communityId;

    @ApiModelProperty(value = "小区id")
    private String plotId;

    @ApiModelProperty(value = "详细地址")
    private List<String> detailedAddress;

    @ApiModelProperty(value = "门牌号")
    private String houseNumber;

    @ApiModelProperty(value = "性别")
    private String gender;

    @ApiModelProperty(value = "民族")
    private String nation;

    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
    @ApiModelProperty(value = "开始日期")
    private Date staterDate;

    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
    @ApiModelProperty(value = "结束日期")
    private Date endDate;
    
    private String address;

    /**
     * 老年人条件信息
     */
    @ApiModelProperty(value = "居住状况")
    private String livingStatus;
    @ApiModelProperty(value = "生活能力")
    private String survivalSkills;
    @ApiModelProperty(value = "是否领取高龄补贴")
    private Boolean highSubsidy;

    /**
     * 残疾人条件信息
     */
    @ApiModelProperty(value = "残疾证号")
    private String disabilityNo;
    @ApiModelProperty(value = "残疾类别")
    private String disabilityType;
    @ApiModelProperty(value = "残疾等级")
    private String disabilityLevel;
    @ApiModelProperty(value = "生活补贴")
    private Boolean isLife;
    @ApiModelProperty(value = "护理补贴")
    private Boolean isCare;

    /**
     * 低保户条件信息
     */
    @ApiModelProperty(value = "领取证号")
    private String certificateNo;
    @ApiModelProperty(value = "金额")
    private String amount;
    @ApiModelProperty(value = "低保类型")
    private String type;

    /**
     * 党员条件信息
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
    @ApiModelProperty(value = "入党日期")
    private Date joinPartyTime;
    
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
    @ApiModelProperty(value = "转入时间")
    private Date shiftToTime;

    /**
     * 优抚条件信息
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
    @ApiModelProperty(value = "入伍时间")
    private Date enlistmentTime;
    
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
    @ApiModelProperty(value = "退伍时间")
    private Date demobilizationTime;
    
    @ApiModelProperty(value = "类别")
    private String category;
    @ApiModelProperty(value = "重点优抚对象")
    private String entitledGroups;

    /**
     * 租户条件信息
     */
    @ApiModelProperty(value = "办理居住证")
    private String residencePermit;
    @ApiModelProperty(value = "业主姓名")
    private String name;
    @ApiModelProperty(value = "业主电话")
    private String tel;

    /**
     * 符合权限的社区id集合
     */
    private List<String> communityIds;

    /**
     * 选中的personIds
     */
    @ApiModelProperty(value = "选中的personIds")
    private List<String> ids;
}
